const express = require('express');
const router = express.Router();

// 加载所需模块
const db = require('../db')
const md5 = require('md5')
const jwt = require('jsonwebtoken');

//写接口
//——————————————————注册接口—————————————————— 
/**
 * 登录接口
 * 请求方式：POST
 * 接口地址：/api/reguser
 * 请求体：username | password
 */
 router.post('/reguser', (req, res) => {
  let { username, password } = req.body;
  // 添加入库之前，先判断账号是否存在
  db(`select * from user where username='${username}'`, (err, result) => {
    if (err) throw err;
    if (result.length > 0) {
      return res.send({ status: 1, message: '账号已存在' });
    } else {
      // 注册之前将密码加密
      password = md5(password);
      db(
        `insert into user set username='${username}',password='${password}'`,
        (err, result) => {
          if (err) throw err;
          res.send({ status: 0, message: '注册成功' });
        }
      );
    }
  });
});
//——————————————————登陆接口—————————————————— 
/**
 * 登录接口
 * 请求方式：POST
 * 接口地址：/api/login
 * 请求体：username | password
 */
 router.post('/login', (req, res) => {
  // console.log(req.body); // { username: 'laotang', password: '123456' }
  let { username, password } = req.body;
  password = md5(password);
  // 使用username和加密的密码当做条件，查询。
  let sql = `select * from user where username='${username}' and password='${password}'`;
  db(sql, (err, result) => {
    if (err) throw err;
    // console.log(result); // 没有查到结果得到空数组；  查到结果得到非空数组
    if (result.length > 0) {
      // 登录成功，生成token
      // 在token中保存用户的id
      // token前必须加 “Bearer ”，注意空格
      let token = 'Bearer ' + jwt.sign({ id: result[0].id }, 'abcde', { expiresIn: '2h' });
      res.send({ status: 0, message: '登录成功', token })
    } else {
      res.send({ status: 1, message: '账号或密码错误' })
    }
  })
});

//导出
module.exports = router;